//event.js 文件
var events = require('events');
var emitter = new events.EventEmitter();




// 默认情况下， EventEmitters 如果你添加的监听器超过 10 个就会输出警告信息。
// setMaxListeners 函数用于《提高》监听器的默认限制的数量。

emitter.setMaxListeners(11);

emitter.on('someEvent', function(arg1, arg2) {
    console.log('listener1', arg1, arg2);
});
emitter.on('someEvent', function(arg1, arg2) {
    console.log('listener2', arg1, arg2);
});


// 为指定事件添加一个监听器到监听器数组的尾部。  跟on没区别
emitter.addListener("123",function (arg) {
    console.log("=========="+arg+"=======啛啛喳喳===============")
})


emitter.once('connection', function (stream) {
    console.log('Ah, we have our first user!');
});


var k=events.EventEmitter.listenerCount(emitter,"someEvent");

console.log("（（（（（（（（（（（（（（")
console.log(k)
console.log("）））））））））））））））））")

// var kk=events.emitter.listenerCount("someEvent");//这个最新版本才能用
// console.log("888888888888888888888888888888888")
// console.log(kk)
// console.log("000000000000000000000000000000000")

//删除所有监听器, 可以起作用
// emitter.removeAllListeners()
//可以起作用
// emitter.removeAllListeners("someEvent")
//这玩意要么带一个参数,删除一个,带多个参数不支持, 要么不带参数删除所有事件
emitter.removeAllListeners("123")


emitter.emit("123","操")



//这个移除已经没有用了发现,移除不掉饿了//这个不要用,已经废了用removeAll
emitter.removeListener("someEvent",function () {
    console.log("已经删除 someEvent")
})
emitter.emit('someEvent', 'arg1 参数', 'arg2 参数');

console.log("----------654--------------------")

console.log("-------------------2-----------------")
//返回的是监听器对象里的二个function函数
console.log(emitter.listeners("someEvent"))
var eventss=emitter.listeners("someEvent")
//这样可以直接执行里面的函数
eventss.forEach(v=>{
    v("你是狗","狗是你");
})
console.log("-------------------4-----------------")
while(true){
    //只会执行一次
    emitter.emit("connection","fuck")
    // emitter.emit("123","操")
}